"""LinkBook项目的主URL配置

定义项目的主要URL路由，包含各个应用的API路由。
"""

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from rest_framework.documentation import include_docs_urls

# API版本前缀
API_VERSION = 'v1'

urlpatterns = [
    # Django管理后台
    path('admin/', admin.site.urls),
    
    # API文档
    path('docs/', include_docs_urls(title='LinkBook API Documentation')),
    
    # API路由 - v1版本
    path(f'api/{API_VERSION}/', include([
        # 用户认证相关API
        path('', include('apps.authentication.urls')),
        
        # 笔记管理相关API
        path('', include('apps.notes.urls')),
        
        # 数据同步相关API (暂时禁用，使用主视图中的简化同步)
        # path('sync/', include('apps.notes.sync_urls')),
        
        # 笔记分享相关API (暂时禁用，使用主视图中的简化共享)
        # path('sharing/', include('apps.sharing.urls')),
        
        # 公共功能API
        path('', include('apps.common.urls')),
    ])),
]

# 开发环境下提供媒体文件服务
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    
    # Debug Toolbar URL配置
    try:
        import debug_toolbar
        urlpatterns = [
            path('__debug__/', include(debug_toolbar.urls)),
        ] + urlpatterns
    except ImportError:
        pass

# 自定义错误处理
handler400 = 'apps.common.views.bad_request'
handler403 = 'apps.common.views.permission_denied'
handler404 = 'apps.common.views.page_not_found'
handler500 = 'apps.common.views.server_error'
